perm filename DISTOR.HDR[VIS,HPM]1 blob sn#205256 filedate 1976-03-11 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	REQUIRE "DISTOR[VIS,HPM]" LOAD_MODULE
C00021 ENDMK
C⊗;
REQUIRE "DISTOR[VIS,HPM]" LOAD_MODULE;

COMMENT  DISCAL uses the reference positions X and Y and the distorted
	 positions XP and YP of N image points to compute the distortion
	 calibration polynomial coefficients G (for converting X,Y to XP,YP)
	 and their covariance matrix S.  (To allow P and Q to have their
	 maximum values, G should be dimensioned [1:44] and S should be
	 dimensioned [1:44,1:44].)  P is the degree of the two-dimensional
	 polynomials for general distortion, and Q is the degree of the
	 one-dimensional polynomial for radial distortion.  (An even value
	 of Q is equivalent to the next lower odd value.  All values of Q
	 such that Q≤P are equivalent.)  SW is the image semiwidth as in SETUP.
	 SD is the computed standard deviation of the observation errors (unmodeled
	 errors in X and Y).  If on input 0≤P≤5 and Q≤10, these values are
	 accepted.  Otherwise, typed-in values P and Q are asked for, with
	 the entire process repeating until only a carriage return is
	 typed for P.  The final values are returned.  The distortion,
	 residuals, and propagated accuracy of the adjustment are
	 displayed by means of SETUP, VECTRA, ELLIPA, and SETDOWN.
	 IDENT is used for labelling the XGP output, if any;
EXTERNAL PROCEDURE DISCAL (STRING IDENT; REAL SW; INTEGER N; REFERENCE INTEGER P,Q;
	REAL ARRAY X,Y,XP,YP,G,S; REFERENCE REAL SD);

COMMENT  DISREM uses the distortion calibration coefficients G as computed by
	 DISCAL according to the general and radial polynomial orders P and Q
	 to convert the N points XI,YI into the N points XO,YO.  (XO and YO
	 can refer to the same arrays as XI and YI.)  If TOL<0, the forward
	 conversion is done (X,Y to XP,YP in DISCAL).  If TOL≥0, the inverse
	 conversion is done (XP,YP to X,Y in DISCAL), and TOL is the convergence
	 tolerance (in XO,YO) for terminating the iterations (with a maximum
	 of 10 iterations).  (PQINIT must be called before this procedure to
	 compute the functions of P and Q, unless this has already been
	 done by calling DISCAL);
EXTERNAL SIMPLE PROCEDURE DISREM (INTEGER N; REAL TOL;
	REAL ARRAY G,XI,YI,XO,YO);